//package com.xinggq.common;
//
//import java.time.Duration;
//import java.time.LocalTime;
//import org.springframework.http.MediaType;
//import org.springframework.http.codec.ServerSentEvent;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.GetMapping;
//import reactor.core.publisher.Flux;
//
///**
// * SSE实现
// * @Description
// * @Author xinggq
// * @Date 2025/4/14
// */
//@Controller
//public class SseController {
//
//  /**
//   * 每秒发送一次当前时间
//   * @return
//   */
//  @GetMapping("/sse/stream")
//  public Flux<ServerSentEvent<String>> streamSse() {
//    return Flux.interval(Duration.ofSeconds(1))
//        .map(sequence -> ServerSentEvent.<String>builder()
//            .id(String.valueOf(sequence))
//            .event("periodic-event")
//            .data("Current time: " + LocalTime.now())
//            .build());
//  }
//
//  /**
//   * 每秒发送一次当前时间，每隔5秒发送一次心跳
//   * @return
//   */
//  @GetMapping(value = "/sse/stream-with-ping", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
//  public Flux<ServerSentEvent<String>> streamWithPing() {
//    return Flux.interval(Duration.ofSeconds(1))
//        .map(sequence -> {
//          if (sequence % 5 == 0) {  // 每5秒发送一次心跳
//            return ServerSentEvent.<String>builder()
//                .comment("ping")
//                .build();
//          } else {
//            return ServerSentEvent.<String>builder()
//                .data("Current time: " + LocalTime.now())
//                .build();
//          }
//        });
//  }
//
//}
